package cn.iocoder.lw.module.core.controller.admin.device.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

import com.mzt.logapi.starter.annotation.DiffLogField;

@Schema(description = "管理后台 - 核心设备 Response VO")
@Data
public class CoreDeviceRespVO {

    @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long projectId;

    @Schema(description = "项目名称", example = "示例项目")
    private String projectName;

    @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "智能门锁")
    private String deviceType;

    @Schema(description = "设备ID（关联商品SPU的ID）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1001")
    private Long spuId;

    @Schema(description = "商品SPU名称", example = "智能门锁标准版")
    private String spuName;

    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "智能门锁A-001")
    private String deviceName;

    @Schema(description = "设备数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer deviceCount;

    @Schema(description = "质保有效开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime warrantyStartTime;

    @Schema(description = "质保有效结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime warrantyEndTime;

    @Schema(description = "质保是否过期", example = "false")
    private Boolean isWarrantyExpired;

    @Schema(description = "设备状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer status;

    @Schema(description = "设备位置描述", example = "一楼大厅")
    private String location;

    @Schema(description = "设备编码", example = "DL-001")
    private String deviceCode;

    @Schema(description = "安装时间")
    private LocalDateTime installTime;

    @Schema(description = "备注", example = "设备运行正常")
    private String remark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime updateTime;

    @Schema(description = "负责人用户名", example = "张三")
    private String ownerUserName;

    @Schema(description = "负责人部门名", example = "研发部")
    private String ownerDeptName;
    
    

}